package com.movie.ticket.sale.movieassembly.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.movie.ticket.sale.movieassembly.controller.form.*;
import com.movie.ticket.sale.movieassembly.controller.form.TMovie;
import com.movie.ticket.sale.moviecommon.common.Result;
import com.movie.ticket.sale.moviecommon.model.*;
//import com.movie.ticket.sale.moviecommon.model.TMovie;

import javax.xml.crypto.Data;
import java.util.List;
import java.util.Map;

public interface MovieDetailsService {
    /**
     * 展示电影封面
     */
    String getMovieData(int id);
    /**
     * 展示电影信息(包括简介)
     */
    TMovie getMovieInnformention(int id1);
    /**
     * 展示该电影评论总条数
     */
    int getMovieReviewNumber(int id);

    /**
     * 分页展示该电影评论
     * @param id
     * @param
     * @param
     * @return
     */
    IPage<MovieCommon> getMovieReview(Page<MovieCommon> page,int id);

    /**
     * 展示导演头像
     * @param id
     * @return
     */
    List<MoviePerson> getMoviePersonDirector(int id);

    /**
     * 展示演员头像
     * @param id
     * @return
     */
    List<MoviePerson> getMoviePersonActor(int id);

    /**
     * 获取电影剧照
     * @param id
     * @return
     */
    List<String> getMoviePhoto(int id);

    /**
     * 展示演员头像
     * @param id
     * @return
     */
    String getCastPhotoAuctor(int id);

    /**
     * 展示导演头像
     * @param id
     * @return
     */
    String getCastPhotoDirector(int id);

//    /**
//     * 筛选影院
//     * @param cinemaName
//     * @param region
//     * @param showTime
//     * @param auditoriumType
//     * @param service
//     * @param currPage
//     * @param number
//     * @param
//     * @param
//     * @return
//     */
//    List<CinemaMessage> chooseCinema(String cinemaName, String region, String showTime, String auditoriumType, String service, int currPage, int number);

    /**
     * 筛选影院分页展示
     * @param page
     * @param cinemaName
     * @param region
     * @param showTime
     * @param
     * @param service
     * @return
     */
    IPage<CinemaMessage> getCinemaMessage(Page<CinemaMessage> page,String cinemaName, String region, String showTime,  String service);

    /**
     * 获取影院信息
     * @param id
     * @return
     */
    CinemaInformention getCinemaMessagePicture(int id);

    /**
     * 获取当前影院热映的影片
     * @param id
     * @return
     */
    List<MovieInformention> getCinemaMovie(int id,String nowTime);

    /**
     * 获取该场次信息
     * @param perId
     * @return
     */
    TPerid selectTperidById(int perId);

    /**
     * 获取优惠券信息
     * @param id
     * @return
     */
    TDiscount getDiscountById(int id, String nowTime);

    /**
     * 模糊查询电影
     * @param page
     * @param movieName
     * @return
     */
    IPage<MovieShow> getMovieByMovieName(Page<MovieShow> page, String movieName);

    /**
     * 通过影人名字获取信息
     * @param page
     * @param peopleName
     * @return
     */
    IPage<PeopleShow> getMovieByPeopleName(Page<PeopleShow> page, String peopleName);

    /**
     *
     * 通过影院名获取影院信息
     * @param page
     * @param cinemaName
     * @return
     */
    IPage<CinemaShow> getMovieByCinemaName(Page<CinemaShow> page, String cinemaName);

    /**
     * 根据条件筛选电影
     * @param page
     * @param movieType
     * @param movieTime
     * @return
     */
    IPage<MovieShow> getMovieByTypeTime(Page<MovieShow> page, String movieType, String movieTime);

    /**
     * 查询用户拥有的优惠券
     * @param page
     * @param tel
     * @return
     */
    IPage<DiscountShow> getDiscountByUserTel(Page<DiscountShow> page, String tel,String nowTime);

    /**
     * 根据电影id查询所有演员
     * @param id
     * @return
     */
    List<String> getAllActorByMovieId(int id);

    /**
     * 根据名字获取头像
     * @param name
     * @return
     */
    List<String> getAllPhotoActorsByName(String name);
    /**
     * 根据电影id查询所有导演
     * @param id
     * @return
     */
    List<String> getAllDirectorByMovieId(int id);
    /**
     * 根据名字获取头像
     * @param name
     * @return
     */
    List<String> getAllPhotoDirectorByName(String name);

    /**
     * 根据用户tel获取id
     * @param userTel
     * @return
     */
    int getUserIdByUserTel(String userTel);

    /**
     * 根据场次id获取电影id，影厅id
     * @param perId
     * @return
     */
    OrderMessage getMovieIdByPerId(int perId);

    /**
     * 添加订单
     * @param orderMessage
     */
    void addOrderMessage(OrderMessage orderMessage);

    /**
     * 改变优惠券状态
     * @param i
     */
    void changeDiscountState(int i);

    /**
     * 查询会员情况
     * @param userId
     * @param cinemaId
     * @param format
     * @return
     */
    TVip getTvip(int userId, int cinemaId, String format);

    /**
     * 添加座位进入订单详情表
     * @param str
     * @param seat
     * @param format
     * @param
     */
    void addOrderTicket(int str, String seat, String format);

    /**
     * 修改订单号
     * @param tradeNuo
     */
    void updateTradeNuo(String tradeNuo,int id);

    void zuofeiOrderMovie(int id);

    void zuofeiOrderTicket(int id);

    String getSetsByPerid(int peridId);

    /**
     * 修改座位信息
     * @param s
     */
    void changeSeatStram(String s,int perId);

    /**
     * 根据id获取订单
     * @param id
     * @return
     */
    TOrderMovie getOrderMovie(int id);
}
